// ##
#include "TimerBoxes.h"
#include "../../runtime/AutomaticBoxCreatorRegistration.h"
#include "../../common/timer/Timer.h"

namespace jm4bbx {

	REGISTER_BOX_TO_RUNTIME_BASE(START_TIMER, StartTimerBox);
	REGISTER_BOX_TO_RUNTIME_BASE(TIMER_REPORT, TimerReportBox);

	//const char* StartTimerBoxDescriptor::BOX_ID = "START_TIMER";
	//const char* TimerReportBoxDescriptor::BOX_ID = "TIMER_REPORT";

	void StartTimerBox::initImpl() {
		// Nic nie je potrebne inicializovat , pretoza sa vyuziju zdedene
		// vlastnosti vstupnych a vystupnych signalov.
		wait4SignalsIn();
	}

	void StartTimerBox::sync_mach_etwas() {
		Timer::getInstance()->start();
		sendSignalsOut();
		wait4SignalsIn();
	}


	void TimerReportBox::initImpl() {
		// Nic nie je potrebne inicializovat , pretoza sa vyuziju zdedene
		// vlastnosti vstupnych a vystupnych signalov.
		wait4SignalsIn();
	}

	void TimerReportBox::sync_mach_etwas() {
		Timer::getInstance()->report(std::cout);
		sendSignalsOut();
		wait4SignalsIn();
	}


} // namespace jm4bbx
